Ich habe gerade Python 3.6.1 für MacOS X installiert Wenn ich versuche, die Konsole auszuführen (oder etwas mit Python3 auszuführen), wird dieser Fehler ausgelöst: AttributeError: Modul 'enum' hat kein Attribut 'IntFlag' $ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 Fehler beim Importieren des Site-Moduls Traceback (letzter Anruf zuletzt): Datei "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", Zeile 544, inMain() Datei "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", Zeile 530, in main bekannte_Pfade = addusersitepackages (bekannte_Pfade) Datei "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", Zeile 282, in addusersitepackages user_site = getusersitepackages () Datei "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", Zeile 258, in getusersitepackages user_base = getuserbase () # Dadurch wird auch USER_BASE festgelegt Datei "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", Zeile 248, in getuserbase USER_BASE = get_config_var ('Benutzerbasis') Datei "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", Zeile 601, in get_config_var return get_config_vars (). get (name) Datei "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", Zeile 580, in get_config_vars _osx_support importieren Datei "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_osx_support.py", Zeile 4, in import re Datei "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", Zeile 142, in Klasse RegexFlag (enum.IntFlag): AttributeError: Modul 'enum' hat kein Attribut 'IntFlag' Die Klasse IntFlag existiert in enum.py. Warum wird der AttributeError ausgelöst?
2021-01-02 08:11:45
Dies liegt daran, dass Ihre Aufzählung nicht das Standardmodul für Bibliotheksaufzählungen ist. Sie haben wahrscheinlich das Paket enum34 installiert. Eine Möglichkeit, dies zu überprüfen, besteht darin, die Eigenschaft enum .__ file__ zu überprüfen Enum importieren print (enum .__ file__) # Der Standardspeicherort der Bibliothek sollte ungefähr so sein # /usr/local/lib/python3.6/enum.py Seit Python 3.6 ist die enum34-Bibliothek nicht mehr mit der Standardbibliothek kompatibel. Die Bibliothek ist ebenfalls nicht erforderlich, sodass Sie sie einfach deinstallieren können. pip deinstallieren -y enum34 Wenn Sie den Code benötigen, um auf Python-Versionen <= 3.4 und> 3.4 ausgeführt zu werden, können Sie versuchen, Enum-Kompatibilität als Voraussetzung zu verwenden. Enum34 wird nur für ältere Python-Versionen ohne die Standardbibliotheks-Enumeration installiert. | Ich bin mir nicht sicher, ob Sie dieses Problem noch haben. Ich hatte ein ähnliches Problem und konnte es einfach durch Deaktivieren von PYTHONPATH beheben $ PYTHONPATH nicht gesetzt | Bei mir trat dieser Fehler nach der Installation der gcloud-Komponente app-engine-python auf, um sie in pycharm zu integrieren. Die Deinstallation des Moduls hat geholfen, auch wenn pycharm jetzt nicht in die App-Engine hochgeladen wird. | Wenn jemand hierher kommt, weil dieser Fehler beim Ausführen eines Python 3.7-Standardumgebungsprojekts der Google App Engine in PyCharm auftritt, müssen Sie nur noch etwas tun Stellen Sie sicher, dass die auszuführende Konfiguration für Flask und nicht für die Google App Engine-Konfiguration gilt. Deaktivieren Sie anschließend die Google App Engine-Unterstützung unter Einstellungen >> Sprachen und Framework >> Google App Engine Der Grund ist wie unter diesem Link Das übergeordnete Ziel ist, dass Ihre App vollständig portabel ist und in jeder Standard-Python-Umgebung ausgeführt werden kann. Sie schreiben eine Standard-Python-App, keine App Engine-Python-App. Im Rahmen dieser Verschiebung müssen Sie keine proprietären App Engine-APIs und -Dienste mehr für die Kernfunktionalität Ihrer App verwenden. Derzeit sind App Engine-APIs in der Python 3.7-Laufzeit nicht verfügbar. Ich denke, wenn wir ein Python 3.7-Projekt in PyCharm als Google App Engine-Projekt erstellen, versucht es immer noch, dasselbe zu tun wie für eine Python2.7-App | HAFTUNGSAUSSCHLUSS: Bitte, @ juanpa.arrivillaga, wenn Sie diese Antwort sehen, können Sie gerne Ihre eigene schreiben und ich werde diesen Beitrag entfernen. @ juanpa.arrivillaga hatte oben erwähnt: Gibt es zufällig einen Dateinamen enum.py in Ihrem Arbeitsverzeichnis? Dies war das Problem, auf das ich gestoßen bin. Ich kannte das Enum-Modul auf Python zu diesem Zeitpunkt nicht und hatte meine Testdatei enum.py benannt. Da der Dateiname der Modulname ist, gab es einen Konflikt. Weitere Informationen zu Modulen finden Sie hier: https://docs.python.org/2/tutorial/modules.html | Das Deaktivieren von "Google App Engine Support" in den Pycharm-Einstellungen hat dieses Problem für mich behoben. | Die Installation von Version 1.1.8 von enum34 hat bei mir funktioniert. Ich konnte dies beheben, indem ich pumroject.toml enum34 = "== 1.1.8" hinzufügte. Anscheinend hatte enum34 eine Funktion in v1.1.8, die diesen Fehler vermieden hat, aber Dies ging in Version 1.1.9 + zurück. Dies ist jedoch nur eine Problemumgehung. Das Eine bessere Lösung wäre, wenn Pakete Umgebungsmarkierungen verwenden Sie müssen enum34 überhaupt nicht installieren, es sei denn, dies wird benötigt. Quelle: https://github.com/python-poetry/poetry/issues/1122 | Die Antwort von Håken Lid hat mir geholfen, mein Problem zu lösen (danke!), In meinem Fall in Python3.7, in dem Flask in einem Docker-Container ausgeführt wird (FROM tiangolo / uwsgi-nginx-flask: python3.7-alpine3.7). In meinem Fall wurde enum34 von einer anderen Bibliothek installiert (pip install smartsheet-python-sdk). Für diejenigen, die mit einem ähnlichen Docker-Container-Problem kommen, ist hier meine letzte Docker-Datei (auf die entsprechenden Zeilen reduziert): AUS Tiangolo / Uwsgi-Nginx-Kolben: Python3.7-Alpine3.7 ... RUN pip install -r Anforderungen.txt RUN pip deinstallieren -y enum34 ... | Falls Sie PYTHONPATH sowohl für Python2 als auch für Python3 behalten müssen, können Sie Alias-Anweisungen schreiben, um den richtigen PYTHONPATH in Ihrem bash_profile festzulegen: Codieren Sie Ihre Variablen PYTHONPATH2 und PYTHONPATH3 in Ihrem ~ / .bash_profile fest und fügen Sie am Ende die folgenden Aliase hinzu: alias python = 'exportiere PYTHONPATH = $ {PYTHONPATH2}; python' alias python3 = 'exportiere PYTHONPATH = $ {PYTHONPATH3}; python3' Mein Python (bezieht sich auf Python2), da ich Python2 häufiger benutze. | Wann immer ich dieses Problem bekam: AttributeError: Modul 'enum' hat kein Attribut 'IntFlag' einfach zuerst führe ich den Befehl aus: PYTHONPATH deaktiviert und dann meinen gewünschten Befehl ausführen und dann Erfolg haben. | Ich habe pip install--ignore-installierte enum34 verwendet Suchen Sie nach der Installation Ihrer erforderlichen Bibliothek während des Builds nach Warnungen. Ich habe einen Fehler wie diesen erhalten: Verwenden von Legacy setup.py für die Zukunft installieren, da das Paket 'Rad' nicht installiert ist. FEHLER: pyejabberd 0.2.11 hat die Anforderung enum34 == 1.1.2, aber Sie haben enum34 1.1.10, das nicht kompatibel ist . Um dieses Problem zu beheben, führen Sie jetzt den folgenden Befehl aus: pip freeze | grep enum34. Dadurch erhalten Sie die Version der installierten enum34. Deinstallieren Sie es jetzt per Pip. Deinstallieren Sie enum34 und installieren Sie die erforderliche Version als pip install "enum34 == 1.1.20" neu. | Wenn Sie dieses Problem beim Ausführen von Tests in PyCharm haben, stellen Sie sicher, dass das zweite Kontrollkästchen im Feld deaktiviert istKonfigurationen. | Ich habe Python 2 und Python 3 auf meinem Computer installiert. Aus irgendeinem seltsamen Grund habe ich im sys.path von Python 3 auch einen Pfad zum Sitepackage-Bibliotheksverzeichnis von Python2, wenn das re-Modul aufgerufen wird. Wenn ich Python 3 ausführe und enum importiere und drucke (enum .__ file__), zeigt das System diesen Python 2-Pfad zu Site-Paketen nicht an. Ein sehr grober und schmutziger Hack ist es also, das Modul, in das Enum importiert wird, direkt zu ändern (folgen Sie den Traceback-Pfaden) und den folgenden Code unmittelbar vor dem Import von Enum einzufügen: sys importieren für i, p in enumerate (sys.path): wenn "python27" in p.lower () oder "python2.7" in p.lower (): sys.path.pop (i) Enum importieren Das hat mein Problem gelöst. | Sogar ich hatte dieses Problem beim Ausführen von python -m grpc_tools.protoc --version Musste den PYTHONPATH bis Site-Pakete setzen und alle Eingabeaufforderungsfenster herunterfahren und es funktionierte. Hoffe, es hilft für gRPC-Benutzer. | Ich hatte dieses Problem in Ubuntu20.04 in Jupyterlab in meinem virtuellen Env-Kernel mit Python3.8 und Tensorflow 2.2.0. Fehlermeldung war Traceback (letzter Anruf zuletzt): Datei "/usr/lib/python2.7/runpy.py", Zeile 174, in _run_module_as_main "__main__", fname, loader, pkg_name) Datei "/usr/lib/python2.7/runpy.py", Zeile 72, in _run_code Exec-Code in run_globals Datei "/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel_launcher.py", Zeile 15, in aus ipykernel Kernelapp als App importieren Datei "/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel/__init__.py", Zeile 2, in von .connect import * Datei "/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel/connect.py", Zeile 13, in aus IPython.core.profiledir ProfilDir importieren Datei "/home/hu-mka/.local/lib/python2.7/site-packages/IPython/__init__.py", Zeile 48, in aus der Anwendung .core.application importieren Datei "/home/hu-mka/.local/lib/python2.7/site-packages/IPython/core/application.py", Zeile 23, in aus der Importanwendung traitlets.config.application catch_config_error Datei "/home/hu-mka/.local/lib/python2.7/site-packages/traitlets/__init__.py", Zeile 1, in aus .traitlets importieren * Datei "/home/hu-mka/.local/lib/python2.7/site-packages/traitlets/traitlets.py", Zeile 49, in Enum importieren ImportError: Kein Modul mit dem Namen enum Problem war, dass in symbolischer Verknüpfung in / usr / bin / python auf python2 zeigte. Lösung: cd / usr / bin / sudo ln -sf python3 python Hoffentlich wird die Verwendung von Python 2 bald vollständig eingestellt. | Ich habe dieses Problem bei der Installation der Transformator-Bibliothek von HuggingFace erhalten. Dies lag daran, dass das Paket enum34 in meiner Umgebung installiert wurde, das die in Python integrierte Aufzählung überschrieb. Dieses Paket wurde wahrscheinlich aus Gründen der Vorwärtskompatibilität installiert, die mit Python 3.6+ nicht mehr benötigt werden. Die Lösung ist also einfach: pip deinstallieren -y enum34 | Leider hat mir keiner der Vorschläge geholfen, aber nach einigem googeln pip install aenum löste es für mich | Wenn jemand dieses Problem hat, wenn er versucht, den Jupyter-Kernel von einem virtuellen Kern aus auszuführen, fügen Sie einfach den richtigen PYTHONPATH zu kernel.json Ihres virtuellen Kerns hinzu (Beispiel Python 3): { "argv": [ "/usr/local/Cellar/python/3.6.5/bin/python3.6", "-m", "ipykernel_launcher", "-f", "{Verbindungsdatei}" ], "display_name": "Python 3 (TensorFlow)", "Sprache": "Python", "env": { "PYTHONPATH": "/Users/dimitrijer/git/mlai/.venv/lib/python3.6:/Users/dimitrijer/git/mlai/.venv/lib/python3.6/lib-dynload:/usr/local/ Cellar / python / 3.6.5 / Frameworks / Python.framework / Versions / 3.6 / lib / python3.6: /Users/dimitrijer/git/mlai/.venv/lib/python3.6/site-packages " }} }} | Deine Antwort StackExchange.ifUsing ("Editor", function () { StackExchange.using ("externalEditor", function () { StackExchange.using ("Snippets", function () { StackExchange.snippets.init (); }); }); }, "Code Ausschnitte"); StackExchange.ready (function () { var channelOptions = { Tags: "" .split (""), id: "1" }; initTagRenderer ("". split (""), "" .split (""), channelOptions); StackExchange.using ("externalEditor", function () { // Editor muss nach Snippets ausgelöst werden, wenn Snippets aktiviert sind if (StackExchange.settings.snippets.snippetsEnabled) { StackExchange.using ("Snippets", function () { createEditor (); }); }} sonst { createEditor (); }} }); Funktion createEditor () { StackExchange.prepareEditor ({ useStacksEditor: false, heartbeatType: 'Antwort', autoActivateHeartbeat: false, convertImagesToLinks: true, noModals: wahr, showLowRepImageUploadWarning: true, Ruf zu PostImages: 10, bindNavPrevention: true, Postfix: "", imageUploader: { brandingHtml: "Powered by \ u003ca href = \" https: //imgur.com/ \ "\ u003e \ u003csvg class =" svg-icon "width =" 50 "height =" 18 "viewBox = "0 0 50 18" fill = "none" xmlns = "http: //www.w3.org/2000/svg" \ u003e \ u003cpath d = "M46.1709 9.17788C46.1709 8.26454 46.2665 7.94324 47.1084 7.58816C47.4091 7.46349 47.7169 7.36433 48.0099 7.26993C48.9099 6.97997 49.672 6.73443 49.672 5.93063C49.672 5.22043 48.98324,61182 48,1414 4,61182C47,4335 4,61182 46,7256 4,91628 46,0943 5,50789C45,7307 4,9328 45,2525 4,66231 44,6595 4,66231C43,6264 4,66231 43,1481 5,28821 43,1481 6,909048V11,9512C43,1348 / \ u003e \ u003cpath d = \ "M32.492 10.1419C32.492 12.6954 34.1182 14.0484 37.0451 14.0484C39.9723 14.0484 41.5985 12.6954 41.5985 10.1419V6.59049C41.5985 5.28821 41.1394 4.66232 38.34.6 .5948 10.8521 38.2696 11.5455 37.0451 11.5455C35.8209 11.5455 35.4954 10.8521 35.4954 9.60062V6.59049C35.4954 5.28821 35.0173 4.66232 34.0034 4.66232C32.9703 4.66232 32.492 5.28821 32.102 \ "clip-rule =" evenodd "d =" M25.6622 17.6335C27.8049 17.6335 29.3739 16.9402 30.2537 15.6379C30.8468 14.7755 30.9615 13.5579 30.9615 11.9512V6.59049C30.9615 5.28821 30.4833 4.66231 29.4502 4.132 4.9497 8 28.1109 5.50789C27.499 4.86533 26.7335 4.56087 25.7005 4.56087C23.1369 4.56087 21.0134 6.57349 21.0134 9.27932C21.0134 11.9852 23.003 13.913 25.3754 13.913C26.5612 13.913 27.4607 13.4901 12.4121 12.983C28.1301 14.4373 27.2502 15.2321 25.777 15.2321C24.8349 15.2321 24.1352 14.9821 23.5661 14.7787C23.176 14.6393 22.8472 14.5218 22.5437 14.5218C21.7977 14.5218 21.2429 15.0123 21.2429 21.2429 21.629 7.09766 26.1024 7.09766C27.2119 7.09766 28.0918 7.94324 28.0918 9.27932C28.0918 10.6321 27.2311 11.5116 26.1024 11.5116C24.9737 11.5116 24.1317 10.6491 24.1317 9.27932Z \ "/ \ u003e \ u003 13.8962C19.3298 13.8962 19.8079 13.2535 19.8079 11.9512V8.12928C19.8079 5.82936 18.4879 4.62866 16.4027 4.62866C15.1594 4.62866 14.279 4.98375 13.3609 5.88013C12.653 5.05154 11.6581 4.62866 10.3573 4.62866C9.34336 4.62866 8.57809 4.89931 7.9466 5.5079C7.58314 4.9328 7.10506 4.66232 6.51203 4.66232C5.47873 4.66232 5.00066 5.28821 5.00066 6.59049V11.9512C5.0007 133.25 0232 7.58817 8.44431 6.91179 9.53458 6.91179C10.5104 6.91179 10.893 7.58817 10.893 8.94108V11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.9157 13.2535 13.9157 11.51291.9159 13.9157 13.9157 13.9157 13.9157. V11.9512Z \ "/ \ u003e \ u003cpath d =" M3.31675 6.59049C3.31675 5.28821 2.83866 4.66232 1.82471 4.66232C0.791758 4.66232 0.313354 5.28821 0.313354 6.59049V11.9512C0.313523 13.2512 3.31675 11.9512V6.59049Z "/ \ u003e" u003cpath d = "M1.87209 0.400291C0.843612 0.400291 0 1.1159 0 1.98861C0 2.87869 0.822846 3.57676 1.87209 3.57676C2.90056 3.57676 3.7234 2.9 3.7234 1.98861C3.7234 1.1159 2.90056 0.400291 1.87209 0.400291Z "fill =" # 1BB76E "/ \ u003e \ u003c / svg \ u003e \ u003c / a \ u003e", contentPolicyHtml: "Benutzerbeiträge, lizenziert unter \ u003ca href = \" https: //stackoverflow.com/help/licensing \ "\ u003ecc by-sa \ u003c / a \ u003e \ u003ca href = \" https://stackoverflow.com / legal / content-policy \ "\ u003e (Inhaltsrichtlinie) \ u003c / a \ u003e", allowUrls: true }, onDemand: wahr, discardSelector: ".discard-answer" , instantShowMarkdownHelp: true, enableTables: true, enableSnippets: true }); }} }); Vielen Dank für Ihre Antwort auf Stack Overflow! Bitte beantworten Sie die Frage unbedingt. Geben Sie Details an und teilen Sie Ihre Forschung! Aber vermeiden Sie ... Um Hilfe bitten, Klarheit schaffen oder auf andere Antworten antworten. Aussagen auf der Grundlage von Meinungen machen; Unterstützen Sie sie mit Referenzen oder persönlichen Erfahrungen. Weitere Informationen finden Sie in unseren Tipps zum Schreiben großartiger Antworten. Entwurf gespeichert Entwurf verworfen Anmelden oder anmelden StackExchange.ready (function () { StackExchange.helpers.onClickDraftSave ('# login-link'); }); Melden Sie sich mit Google an Melde dich über Facebook an Melden Sie sich mit E-Mail und Passwort an einreichen Post als Gast Name Email Erforderlich, aber nie gezeigt StackExchange.ready ( function () { StackExchange.openid.initPostLogin ('. New-post-login', 'https% 3a% 2f% 2fstackoverflow.com% 2fquestions% 2f43124775% 2fwhy-python-3-6-1-throw-attributeerror-module-enum-has- no-attribute-intflag% 23new-answer ',' question_page '); }} ); Post als Gast Name Email Erforderlich, aber nie gezeigt Veröffentlichen Sie Ihre Antwort Verwerfen Durch Klicken auf "Antwort posten" stimmen Sie unseren Nutzungsbedingungen, Datenschutzbestimmungen und Cookie-Richtlinien zu Nicht die Antwort, die Sie suchen? Durchsuchen Sie andere Fragen mit dem Tag python python-3.x enums python-3.6 attributeerror oder stellen Sie Ihre eigene Frage.